mir: check the log events env variable just once
authorMarco Trevisan (Treviño) <mail@3v1n0.net>
Tue, 2 Dec 2014 17:43:32 +0000 (18:43 +0100)
committerWilliam Hua <william@attente.ca>
Thu, 5 Feb 2015 16:26:18 +0000 (17:26 +0100)
gdk/mir/gdkmireventsource.c

index df2ec92a4a8de875143dc4361cf26ea94fbaebb5..7e4b9d0c72e63d76bb20dcc46bf2c640ba461500 100644 (file)
@@ -41,6 +41,7 @@ struct _GdkMirEventSource
 
   GMutex mir_event_lock;
   GQueue mir_events;
+  gboolean log_events;
 
   GdkDisplay *display;
 };
@@ -401,9 +402,6 @@ gdk_mir_event_source_queue_event (GdkDisplay     *display,
                                   GdkWindow      *window,
                                   const MirEvent *event)
 {
-  if (g_getenv ("GDK_MIR_LOG_EVENTS"))
-    _gdk_mir_print_event (event);
-
   // FIXME: Only generate events if the window wanted them?
   switch (event->type)
     {
@@ -487,6 +485,9 @@ gdk_mir_event_source_convert_events (GdkMirEventSource *source)
                 }
             }
 
+          if (source->log_events)
+            _gdk_mir_print_event (&event->event);
+
           gdk_mir_event_source_queue_event (source->display, window, &event->event);
         }
       else
@@ -583,6 +584,7 @@ _gdk_mir_event_source_new (GdkDisplay *display)
   source = (GdkMirEventSource *) g_source;
   g_mutex_init (&source->mir_event_lock);
   source->display = display;
+  source->log_events = (g_getenv ("GDK_MIR_LOG_EVENTS") != NULL);
 
   return source;
 }